package com.dayuanit.dy15.lesson23.demo1;

public class TestSort {

    /**
     * 冒泡排序
     * @param nums
     */
    public static void maopao(int[] nums) {
        for (int i=0; i<nums.length; i++) {
            for (int j=0; j<nums.length - 1 - i; j++) {
                if (nums[j] > nums[j + 1]) {
                    int temp = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = temp;
                }
            }
        }
    }

    /**
     * 选择排序
     * @param nums
     */
    public static void xuanzhe(int[] nums) {
        for (int i=0; i<nums.length; i ++) {
            int min = i;//假设第i的下标值是最小的
            for (int j = i + 1; j < nums.length; j++) {
                //比较谁最小，将最小值下标赋值给min;
                if (nums[min] > nums[j]) {
                    min = j;
                }
            }

            //校验假设是否正确？
            if (min != i) {
                int temp = nums[min];
                nums[min] = nums[i];
                nums[i] = temp;
            }
        }
    }

    public static void main(String[] args) {
        //冒泡 选择 插入 希尔 归并 堆排序 快速 猴子排序
        int[] nums = {2, 1, 9, 5, 5, 3};
//        maopao(nums);

        xuanzhe(nums);

        for (int num : nums) {
            System.out.print(num);
        }
    }
}
